import os
from pathlib import Path


def list_jpg_files(directory):
    """列出指定目录下的所有JPG文件（包括.jpg和.jpeg后缀，忽略大小写）

    Args:
        directory (str): 目录路径

    Returns:
        list: JPG文件路径列表
    """
    # 转换目录路径为绝对路径
    directory = os.path.abspath(directory)

    # 检查目录是否存在
    if not os.path.exists(directory) or not os.path.isdir(directory):
        print(f"错误: 目录 '{directory}' 不存在或不是有效目录")
        return []

    # 初始化结果列表
    jpg_files = []

    # 遍历目录中的所有文件
    for filename in os.listdir(directory):
        # 检查文件是否为JPG文件（忽略大小写）
        if filename.lower().endswith(('.jpg', '.jpeg')):
            # 构建完整路径
            file_path = os.path.join(directory, filename)
            # 确保是文件而不是目录
            if os.path.isfile(file_path):
                jpg_files.append(file_path)

    return jpg_files


def get_filename(file_path, include_ext=True, use_pathlib=True):
    """从文件路径中获取文件名

    Args:
        file_path (str): 文件路径
        include_ext (bool): 是否包含文件扩展名（默认为True）
        use_pathlib (bool): 是否使用pathlib模块（默认为True）

    Returns:
        str: 文件名（带或不带扩展名）
    """
    if use_pathlib:
        # 使用pathlib模块（推荐方式）
        path = Path(file_path)
        if include_ext:
            return path.name
        else:
            return path.stem
    else:
        # 使用os模块
        base_name = os.path.basename(file_path)
        if include_ext:
            return base_name
        else:
            return os.path.splitext(base_name)[0]